package com.itbaizhan.dao;

import com.itbaizhan.daomain.Student;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import java.util.List;

/*@Component 是一个泛化的概念，仅仅表示一个组件 (Bean) ，可以作用在任何层次。
@Service 通常作用在业务层，但是目前该功能与 @Component 相同。
@Controller 通常作用在控制层，但是目前该功能与 @Component 相同。*/
/*@Repository 用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean*/
@Repository
public interface StudentDao {
    //查询学生
    @Select("select * from student")
    List<Student> findAll();

    //添加学生
    @Insert("insert into student values(null,#{name},#{sex},#{address})")
    void add(Student student);
}
/*通过在类上使用 @Repository、@Component、@Service 和 @Constroller 注解，
Spring会自动创建相应的 BeanDefinition 对象，并注册到 ApplicationContext 中。
这些类就成了 Spring受管组件。这三个注解除了作用于不同软件层次的类，其使用方式与 @Repository 是完全相同的。*/